////https://www.luogu.com.cn/problem/P3146
//
//#include<iostream>
//
//using namespace std;
//
//const int N = 250;
//int x[N], dp[N][N];
//
//int main()
//{
//	int n; cin >> n;
//	int ret = -0x3f3f3f3f;
//	for (int i = 1; i <= n; i++) 
//	{
//		cin >> x[i];
//		dp[i][i] = x[i];
//		ret = max(ret, dp[i][i]);
//	}
//	for (int len = 2; len <= n; len++)
//	{
//		for (int l = 1; l + len - 1 <= n; l++)
//		{
//			int r = l + len - 1;
//			for (int k = l; k < r; k++)
//			{
//				if (dp[l][k] == dp[k + 1][r] && dp[l][k] != 0)
//				{
//					dp[l][r] = dp[l][k] + 1;
//					ret = max(ret, dp[l][r]);
//				}
//			}
//		}
//	}
//	cout << ret;
//	return 0;
//}